package de.tudarmstadt.winf2.bank;

import de.tudarmstadt.winf2.bank.exceptions.KontoNichtGedecktException;
import de.tudarmstadt.winf2.bank.exceptions.NegativerBetragException;

public class Kontoverwaltung {

	public static void main(String[] args) {
		
		Sparkonto spar = new Sparkonto("spar", (int) Math.round(Math.random()*1000));
		Girokonto giro = new Girokonto("giro", (int) Math.round(Math.random()*1000), 300);
		
		try {
			spar.einzahlen(100);
			spar.druckeKontoauszug();
		} catch (NegativerBetragException e) {
			System.out.println(e);
		}
		
		try {
			spar.auszahlen(50);
			spar.druckeKontoauszug();
		} catch (NegativerBetragException e) {
			System.out.println(e);
		} catch (KontoNichtGedecktException e) {
			System.out.println(e);
		}
		
		try {
			spar.auszahlen(80);
			spar.druckeKontoauszug();
		} catch (NegativerBetragException e) {
			System.out.println(e);
		} catch (KontoNichtGedecktException e) {
			System.out.println(e);
		}
		
		try {
			//giro.auszahlen(50);
			giro.ueberweisung(spar, 50);
			giro.druckeKontoauszug();
			spar.druckeKontoauszug();
		} catch (NegativerBetragException e) {
			System.out.println(e);
		} catch (KontoNichtGedecktException e) {
			System.out.println(e);
		}
		

		try {
			//giro.auszahlen(500);
			giro.ueberweisung(spar, 500);
			giro.druckeKontoauszug();
			spar.druckeKontoauszug();
		} catch (NegativerBetragException e) {
			System.out.println(e);
		} catch (KontoNichtGedecktException e) {
			System.out.println(e);
		}
		
		try {
			spar.einzahlen(200);
			spar.druckeKontoauszug();
		} catch (NegativerBetragException e) {
			System.out.println(e);
		}
		
		spar.druckeKontoauszug();
		spar.monatsabschluss();
		spar.druckeKontoauszug();
		
		giro.druckeKontoauszug();
		giro.monatsabschluss();
		giro.druckeKontoauszug();
	}

}
